1. Field of the Invention
Methods and apparatuses consistent with the present invention relate to an open application programmable interface (API) service, and more particularly, to generating a mashup graph between various open APIs, and recommending mashup service.
2. Description of the Related Art
By virtue of the development of the Internet, a new type of Web-based data integration application field referred to as mashup has been developed. Mashup refers to a Web site or application in which contents provided by a plurality of services are integrated with each other. In particular, mashup emphasizes user interactive participation, and collects and reconstitutes information if necessary.
In more detail, mashup refers to mixing and matching contents and services provided by a site and then making more valuable contents and services. For example, FIG. 1 illustrates a mashup 110 in which a map service of Google is connected to a photograph service of Flickr. In this case, the mashup 110 is configured so that photographs of locations related to a predetermined location are displayed on a map when a user clicks the predetermined location of the map. The hypertext markup language (HTML) 120 of the mashup 110 is illustrated on the right side of FIG. 1.
In order to author a mashup, a developer of the mashup plans a type of mashup, searches for and selects open APIs used for making the planned mashup. For example, when the developer of the mashup plans to make a mashup service using an open Google Maps API and an open Flickr API, the developer analyzes the open Google Maps API and the open Flickr API so as to understand the properties of the open Google Maps API and the open Flickr API, such as a communication protocol, data format and a form of input/output data. An open API service provider generates and provides information regarding user's account or a user authentication key to the developer of the mashup, thereby starting the making of the mashup.
During the planning of the mashup, i.e., the user's searching and selecting of the open APIs, a user needs to know whether the APIs provided by the services, as illustrated in FIG. 2, can be connected to each other. In order to decide whether the mashup is feasible, it is assumed that information regarding an input/output connection between the services illustrated in FIG. 1 and the open APIs can be stored and calculated via a predetermined function of a predetermined system.
As illustrated in FIG. 2, four web sites A through D provide six open APIs {circle around (1)} through {circle around (6)}, and mashup can be constructed using the six APIs {circle around (1)} through {circle around (6)}.
FIG. 2 illustrates a connection matrix between conventional mashup services. Referring to FIG. 2, when services S(1), S(2), . . . , S(k) are selected according to a sequence selected by a user via a user interface, the service S(1) is determined as a base service, and the output of each of the services S(i), except for the service S(1), is tested in terms of whether each of the services S(i) can be connected to the services S(1), S(2), . . . , S(i−1). If the output of each of the services S(i), except for the service S(1), can be connected to the S(1), services S(2), . . . , S(i−1), the result is stored. Then, this operation is sequentially repeated from service S(2) to service S(k). In this case, only a mashup determined according to a user's selection can be obtained, a user's preference and a predetermined request cannot be reflected, and the mashup is highly complicated in terms of time and space.